package com.smartfast4j.common;

/**
 * 业务类常量
 */
public interface Constants {

    /** 超级管理员角色ID */
    Long SUPER_ADMIN = 1L;

    /**
     * 验证码
     */
    String VERIFY_CODE = "verifyCode:";

   interface SECURITY{
        String AES_SECRET_KEY = "aes_secret_key";
        String RSA_PUBLIC_KEY = "rsa_public_key";
        String RSA_PRIVATE_KEY = "aes_private_key";
   }

   interface CACHE_KEY{
       String RESOURCE_ACCESS_PERMISSION="resource_access_permission";
   }

    /**
     * 登录用户信息
     */
    interface LOGIN_USER{

        String COOKIE_KEY="loginToken";

        /**
         * 登录用户的token
         */
        String TOKEN_PREFIX = "loginUser:token:";
        /**
         * 登录用户的用户ID
         */
        String UID_PREFIX = "loginUser:uid:";
        /**
         * 登录用户名（唯一）
         */
        String USERNAME_PREFIX = "loginUser:username:";
    }

    /**
     * 数据库的各个表的deleteFlag字段取值
     *
     */
    interface DELETE_FLAG{
        /**
         * 已删除
         */
        Integer YES = 1;
        /**
         * 未删除
         */
        Integer NO = 0;

    }

    /**
     * 资源类型
     * 0：系统资源 1：菜单   2：按钮
     */
    interface RESOURCE_TYPE{
        /**
         * 系统资源
         */
        Integer SYS_RESOURCE = 0;
        /**
         * 菜单
         */
        Integer MENU = 1;
        /**
         * 案例
         */
        Integer BUTTON = 2;
    }

    /**
     * 用户状态
     * 0-正常，1-冻结禁用
     */
    interface USER_STATUS {
        int NORMAL = 0;//正常
        int FROZEN = 1;//冻结禁用
    }


    /**
     * 数据库性别字段
     */
    interface GENDER {
        /**
         * 男
         */
        int MALE = 1;
        /**
         * 女
         */
        int FEMALE = 2;

        /**
         * 保密
         */
        int SECRECY = 0;
    }

    interface Error {

        String ERROR_CODE = "errorCode";

        String ERROR_MSG = "errorMsg";

        String ADD_SUCCESS = "添加成功";

        String ADD_FAILED = "添加失败";

        String SAVE_SUCCESS = "保存成功";

        String SAVE_FAILED = "保存失败";

        String DELETE_SUCCESS = "删除成功";

        String DELETE_FAILED = "删除失败";

        String SYS_ERROR_CODE = "-1";

        String SYS_ERROR = "系统异常";

        String DATA = "data";
    }

    /**
     * 操作日志状态
     */
    interface SYSLOG_STATE {
        int SUCCESS = 0;//操作成功
        int FAIL = 1;//操作失败
        int ERROR = 2;//异常
    }

    /**
     * 登录状态
     */
    interface lOGIN_STATE {
        String LOGIN = "0";//登录
        String LOGOUT = "1";//已退出登录
    }

    /**
     * 各种状态  0=（否，不） 1=（是，有）
     */
    interface DO_STATUS{
        int NO = 0;
        int YES = 1;
    }

    /**
     * 请求号header标识
     */
    String REQUEST_NO_HEADER_NAME = "Request-No";

    /**
     * header中的spanId，传递规则：request header中传递本服务的id
     */
    String SPAN_ID_HEADER_NAME = "Span-Id";

    interface SMS_TYPE {
        int VERIFICATION = 0;
        int INFORMATION = 1;
    }

    /**
     * 邮件类型
     */
    interface EMAIL_TYPE{
        int SIMPLE_MAIL = 0;//简单文本邮件
        int HTML_MAIL = 1;//html邮件
        int ATTACHMENTS_MAIL = 2;//带附件的邮件
        int RESOURCE_MAIL = 3;//带静态资源邮件
    }

    /**
     * APP升级模式
     */
    interface UPDATE_MODE {
        Integer FROCE = 0;// 可升级
        Integer CHOICE = 1;// 必须升级
        Integer PATCH = 2;// 补丁
    }

    /**
     * 测速客户端
     */
    interface SPEED_TEST_CLIENT{
        int ROUTER = 0;//测速路由器
        int ANDROID_APP = 1;//Android App
        int IOS_APP = 2;//IOS App
        int WX_MP = 3;//微信小程序
        int WEB = 4;//Web应用
    }

    /**
     * 设备状态
     */
    interface  DEVICE_STATUS{
        int ONLINE = 1;//在线
        int OFFLINE = 0;//离线
    }

    /**
     * 测速任务状态
     * 0：未开始，1：执行中，2：已结束
     */
    interface TASK_STATUS{
        int UN_START = 0;//未开始
        int EXECUTING = 1;//执行中
        int END = 2;//已结束
    }

    /**
     * 资源类型
     * 0：网站，1：视频，2：文件
     */
    interface RESOURCE_URL_TYPE{
        int WEBSITE = 0;//网站
        int VIDEO = 1;//视频
        int FILE = 2;//文件
    }
}
